/////////////////////////////////////////////
// ObjectARX defined commands

#include "StdAfx.h"
#include "StdArx.h"


// This is command 'CNL'
void cnl()
{
	char lyrName[256];
	char kw[20];
	int rc;		// return code
	int col;	// Color value

	AcDbObjectId ltypeId;	// We need the object id of the linetype
							// for layer creation

	rc = acedGetString(0, "\nNew layer name: ", lyrName);
	switch(rc)
	{
		case RTCAN:
			acutPrintf("\nUser canceled");
			return;
		case RTERROR:
			acutPrintf("\nError with input of new layer name ");
			return;
		break;
	}

	if(lyrName[0] == '\0')
	{
		acutPrintf("\nEmpty string for new layer name - invalid ");
		return;
	}

	// Get the layer color
	acedInitGet(RSG_NONULL + RSG_NONEG + RSG_NOZERO, NULL);
	acedGetInt("\nLayer color (1 - 7 only) ", &col);

	if(col > 7)
	{
		acutPrintf("\nToo high a color value. ");
		return;
	}

	// Get the layer line type default = 'CONTINUOUS'
	if(!getNewLyrLtId(ltypeId))
	{
		acutPrintf("\nUnable to retrieve the linetype AcDbObjecId ");
		return;
	}

	// Now that we have a layer name, layer color and line type
	// Ask the user if he wants to make the new layer the current layer
	acedInitGet(NULL, "Yes No");
	rc = acedGetKword("\nMake new layer current - [Yes/No]<Yes>: ", kw);
	switch(rc)
	{
		case RTCAN:
			acutPrintf("\nUser canceled");
		break;
		case RTERROR:
			acutPrintf("\nError in acedGetKword function");
		break;
		case RTNONE:
			// If the user presses the [ENTER] key
			// we take this as a "Yes"
			createNewLayer(lyrName, col, ltypeId, Adesk::kTrue);
		break;
		case RTNORM:
			if(strcmp(kw, "Yes") == 0)
			{
				createNewLayer(lyrName, col, ltypeId, Adesk::kTrue);
			}
			else if(strcmp(kw, "No") == 0)
			{
				createNewLayer(lyrName, col, ltypeId, Adesk::kFalse);
			}
		break;
	}
}

